feat: use TypeScript directly for Deno runtime, skip bundling#386
feat: use TypeScript directly for Deno runtime, skip bundling#386netanelgilad merged 4 commits intomainfrom
Conversation
Since Deno supports TypeScript natively, copy deno-runtime/main.ts as-is instead of bundling it to JS. This removes an unnecessary build step and simplifies the pipeline. - Replace Bun bundle step in infra/build.ts with fs.copyFileSync - Update getDenoWrapperPath() to reference main.ts instead of main.js - Update build-binaries.ts prerequisite check accordingly Co-authored-by: Netanel Gilad <netanelgilad@users.noreply.github.com>
🚀 Package Preview Available!Install this PR's preview build with npm: npm i @base44-preview/cli@0.0.41-pr.386.7892f13Prefer not to change any import paths? Install using npm alias so your code still imports npm i "base44@npm:@base44-preview/cli@0.0.41-pr.386.7892f13"Or add it to your {
"dependencies": {
"base44": "npm:@base44-preview/cli@0.0.41-pr.386.7892f13"
}
}
Preview published to npm registry — try new features instantly! |
|
@claude are the changes here covered by tests? the tests run on the real dist output with the deno runtime we copied? or is the change not really covered and I need to test it manually? |
|
Claude finished @netanelgilad's task in 1m 0s —— View job Test Coverage Analysis for Deno Runtime Changes
Short answer: these changes are NOT covered by automated tests. You'll need to test manually. Here's the breakdown: What the testkit does
Why it doesn't cover this PRThe only consumer of
What needs manual testingTo verify this PR works correctly, you'd need to:
|
|
@claude merge main (might be shallow clone) and fix any conflicts after the changes that happened in the main |
|
Claude finished @netanelgilad's task in 1m 24s —— View job Merged main into PR branch
Main had a monorepo migration (#372) that moved everything under All three PR changes are now correctly in their new monorepo locations:
|
Resolved conflict in infra/build-binaries.ts by keeping the PR's `main.ts` change while adopting the monorepo file layout from main. Co-authored-by: Netanel Gilad <netanelgilad@users.noreply.github.com>
|
@claude review |
|
Claude finished @artemdemo's task in 1m 20s —— View job Code Review
Overall: LGTM — clean, correct refactor. The change is well-scoped and the reasoning is sound. Deno has native TypeScript support, so the previous bundling step was redundant.
|
Note
Description
Since Deno supports TypeScript natively, this PR changes the build pipeline to copy
deno-runtime/main.tsdirectly todist/assets/deno-runtime/main.tsinstead of bundling it into a JavaScript file. This removes an unnecessary Bun build step for the Deno runtime, simplifying the build pipeline and avoiding potential bundling artifacts. All references to the Deno runtime asset are updated from.jsto.tsaccordingly.Related Issue
Closes #385
Type of Change
Changes Made
infra/build.ts: AddedcopyDenoRuntime()helper that usescopyFileSync/mkdirSyncto copydeno-runtime/main.tsas-is todist/assets/deno-runtime/main.ts, replacing the previousrunBuild()step; updated watch-mode and production build log output to show "Copied" instead of "Rebuilt" for the Deno runtimeinfra/build-binaries.ts: Updated required asset path check fromdist/assets/deno-runtime/main.jstomain.tssrc/core/assets.ts: UpdatedgetDenoWrapperPath()to return the.tsextension instead of.jsTesting
npm test)Checklist
docs/(AGENTS.md) if I made architectural changesAdditional Notes
The Deno runtime is executed directly by the Deno binary, which has native TypeScript support, making bundling to JS redundant. This change keeps the source TypeScript intact in the distributed assets and removes one Bun build invocation from the pipeline.
🤖 Generated by Claude | 2026-03-10 00:00 UTC